package com.xkcyy.one.ai.common.tool;

import com.xkcyy.one.ai.llm.model.ToolDefinition;

/**
 * 工具接口
 * 
 * @author yuand
 */
public interface Tool {
    /**
     * 获取工具定义
     */
    ToolDefinition getDefinition();

    /**
     * 执行工具
     */
    String execute(String jsonInputParams);

    /**
     * 获取工具名称
     */
    default String getName() {
        return getDefinition().getFunction().getName();
    }

    /**
     * 获取工具描述
     */
    default String getDescription() {
        return getDefinition().getFunction().getDescription();
    }

    /**
     * 获取工具类型
     */
    default String getType(){
        return getDefinition().getType();
    }

    /**
     * 验证输入参数
     */
    default boolean validateInput(String inputParams) {
        return true;
    }
}